import random,time
import datetime

#根据指定的时间段，生成时间段内的所有顺序日期
def getEveryDay(begin_date='2019-06-30',end_date='2019-12-31'):
    """指定开始时间和结束时间，获取中间的日期"""
    date_list = []
    begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d")
    end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d")
    while begin_date <= end_date:
        date_str = begin_date.strftime("%Y-%m-%d")
        date_list.append(date_str)
        begin_date += datetime.timedelta(days=1)
    print('共生成了%s天' % str(len(date_list)))
    return date_list

#根据指定的时间段，生成时间段内的所有顺序详细
def getEveryDetailDay(begin_date='2021-06-01 01:00:00',end_date='2021-06-30 23:00:00'):
    """指定开始时间和结束时间，获取中间的日期"""
    date_list = []
    begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d %H:%M:%S")
    end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d %H:%M:%S")
    while begin_date <= end_date:
        date_str = begin_date.strftime("%Y-%m-%d %H:%M:%S")
        date_list.append(date_str)
        begin_date += datetime.timedelta(hours=1,seconds=30)
    print('共生成了%s天' % str(len(date_list)))
    return date_list

#根据指定的时间段，生成时间段内的所有无序日期(不能用)
#设置时间格式,设置开始日期时间元组（1976-01-01 00：00：00）和结束日期时间元组（2017,12,31,23,59,59,0,0,0）
def getDisOrderDate(begin_date,end_date):
    t3 = time.asctime(begin_date)  # 设置开始日期时间元组（1976-01-01 00：00：00）
    t4 = time.asctime(end_date)  # 设置结束日期时间元组（1990-12-31 23：59：59）
    start=time.mktime(t3)    #生成开始时间戳
    end=time.mktime(t4)      #生成结束时间戳
    t = random.randint(start, end)  # 在开始和结束时间戳中随机取出一个
    date_touple = time.localtime(t)  # 将时间戳生成时间元组
    time.strftime("%Y-%m-%d %H:%M:%S", date_touple)  # 将时间元组转成格式化字符串（1976-05-21）
    return t


#使用datetime 函数生成往后几天的时间，比如当前日期是2019-07-01  那么控制days=1然后再和当前的时间相加，就能得到明天的日期
#只获取后面一天的数据
def time_formate(t):
    """
    日期格式化，使用datetime.timedelta(days=1) 来返回几天后的日期
    :param t: 传入日期
    :return:  返回时间+1的日期
    """
    d = datetime.datetime.strptime(t, '%Y-%m-%d')
    d1 = datetime.timedelta(days=1)
    day = d + d1
    return day

if __name__ == '__main__':
    test = getEveryDay()
    #test = time_formate('2019-07-01')
    #test = getDisOrderDate('1976-01-01 00：00：00','1990-12-31 23：59：59')
    #test = getEveryDetailDay()
    print(test)